home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Hacking & Misc / bundle of exploits.sit / bundle of exploits / fingspy.c < prev    next >
C/C++ Source or Header  |  1997-03-27  |  3KB  |  75 lines

  1. #include <sys/types.h>
  2. #include <sys/file.h>
  3. #include <setjmp.h>
  4. #include <signal.h>
  5. #include <sys/uio.h>
  6. #include <stdio.h>
  7.  sigjmp_buf start;
  8.  void handler(sig,code,scp,addr)
  9.         int sig,code;
  10.         struct sigcontext *scp;
  11.         char *addr;
  12.         {
  13.                 close(1);
  14.                 longjmp(start,0);
  15.         }
  16.  
  17. main()
  18. {
  19.         inf fd;
  20.         fd_set writefds;
  21.  
  22.         setjmp(start);
  23.  
  24.         signal(SIGHUP, handler);
  25.         signal(SIGINT, handler);
  26.         signal(SIGQUIT, handler);
  27.         signal(SIGPIPE, handler);
  28.         
  29.         while (1)
  30.                 {
  31.                         fd = open(".plan", O WRONLY);
  32.                         if (fd !=1)
  33.                                         if (dup2(fd,1) == (-1))
  34.                                                 fprintf(stderr, "Error on dup\n");
  35.  
  36.                         system("cat plan");
  37.                         fflush(stdout);
  38.  
  39. /* Send email indicating finger request */
  40.  
  41.                         system("echo \"You have been fingered on\" 'hostname' at 'date';\
  42.                                                                                 echo \"Relevant process information follows:\"\
  43.                                                                                 ((ps -au; netstat) | grep finger)) | mail -s \"Finger alert\" \username@machine");
  44.  
  45.                         fflush(stdout);
  46.  
  47.                         close(fd);
  48.                         close(1);
  49.                         sleep(3);
  50.                 }
  51. }
  52.  
  53.  
  54. ** Notes **
  55.  
  56. Before you can run this program, you first must have a '.plan' file.  You must also change in the program, where it says 'username@machine', your own e-mail address.
  57.  
  58. As the program stands, the output is an exact duplicate of what a normal finger command would produce, however modification is possible if you want some other information output to the nosy user.  Example:
  59.         printf("It is currently: ");
  60.         system("date"); /* send system date */
  61.         fflush(stdout); /* flush the output */
  62. You would insert this in the area of the 'system ("cat plan")'.  Just remember to flush the stdout after each command.
  63.  
  64. To get this program working, first enter it in using an editor.  Then at the system prompt do:
  65.         mv .plan plan <return>
  66.         mknod .plan p <return>
  67.         cc spy.c -o spy <return>
  68.  
  69. To run it, just enter:
  70.         spy & <return>
  71.  
  72. This pushes it off as into the background daemon where it will quietly sit.  Do NOT run spy & unless you have already checked to make sure it is not already running. Because 'spy &' keeps it in the background, it will stay running even when you log out and back in.  So it's rare you will need to start it up again. 
  73.  
  74. - Wizard
  75.